package com.icongyou.enterprise.talent_analysis.entity;

import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 任务类别表现分析
 * 统计学生在不同类型任务中的表现
 */
@Data
public class TaskCategoryAnalysis {
    
    /**
     * 按任务类型分类的表现
     * key: 任务类型（个人/团队）
     * value: 表现统计
     */
    private Map<String, CategoryPerformance> performanceByType = new HashMap<>();
    
    /**
     * 高分任务列表（用于分析学生擅长的领域）
     */
    private List<TaskDetail> highScoreTasks = new ArrayList<>();
    
    /**
     * 低分任务列表（用于发现改进点）
     */
    private List<TaskDetail> lowScoreTasks = new ArrayList<>();
    
    /**
     * 任务完成趋势（按时间）
     */
    private String performanceTrend;
    
    /**
     * AI分析总结
     */
    private String aiSummary;
    
    /**
     * 类别表现统计
     */
    @Data
    public static class CategoryPerformance {
        /**
         * 任务类别
         */
        private String category;
        
        /**
         * 任务数量
         */
        private Integer taskCount;
        
        /**
         * 平均分
         */
        private BigDecimal avgScore;
        
        /**
         * 最高分
         */
        private BigDecimal maxScore;
        
        /**
         * 完成率
         */
        private Double completionRate;
        
        /**
         * 按时率
         */
        private Double onTimeRate;
        
        /**
         * 优秀率（>90分）
         */
        private Double excellenceRate;
    }
    
    /**
     * 任务详情
     */
    @Data
    public static class TaskDetail {
        /**
         * 任务ID
         */
        private String taskId;
        
        /**
         * 任务名称
         */
        private String taskName;
        
        /**
         * 任务类型
         */
        private String taskType;
        
        /**
         * 得分
         */
        private BigDecimal score;
        
        /**
         * 满分
         */
        private BigDecimal fullScore;
        
        /**
         * 得分率
         */
        private Double scoreRate;
        
        /**
         * 教师评价关键点
         */
        private String teacherCommentSummary;
    }
}
